package com.YKFuse.annotion;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * @Author yuank
 * @Package YKFuse
 * @Date 2025/2/10 15:53
 *
 * @description: 熔断注解
 *
 */

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface YKFuse {

    //A 熔断触发 失败/请求总数 的比值
    double fuseRate();

    //B 熔断降级方法名 若未提供 则返回默认null
    String FallbackMethodName() default "";

    //C 请求情况记录重置时间窗口
    long l() default 5;
    TimeUnit timeUnit() default TimeUnit.SECONDS;

}
